Model Table FACT WORK ORDER

This model fact represents Work Order transactions and is based on the IFS Applcations fact FACT_WORK_ORDER

Note: Please refer to documentation of each model to find out about attributes used in referenced models.

Attributes

Attribute Description (where applicable)

Measures (table to be generated as far as possible)

Aggregation of measures is based on SUM if not explicitly noted.

This section describes the basic measures in the cube. These are either measures defined in the core Information Source, in the model itself or in the ETL process. The columns have the following meaning:

Measure Calculated Y/N Contains Time Intelligence Y/N Definition/Note (where applicable) Aggregation Type Hidden Y/N Tabular Expression
Corrective Order CountNNSUMNSUM([CORRECTIVE_COUNT])
Deviation Early Actual vs Fixed Start Date HoursYNSUMNSUM([DEVIATION_FIXED_START_DATE])/DISTINCTCOUNT('FACT WORK ORDER'[Dim_Reporting_Date_ID])
Deviation Early Actual vs Late Start Date HoursYNSUMNSUM([DEVIATION_EARLIEST_START_DATE])/DISTINCTCOUNT('FACT WORK ORDER'[Dim_Reporting_Date_ID])
Deviation Early Actual vs Planned Finish Date HoursYNSUMNSUM([DEVIATION_PLAN_F_DATE])/DISTINCTCOUNT('FACT WORK ORDER'[Dim_Reporting_Date_ID])
Deviation Early Actual vs Planned Start Date HoursYNSUMNSUM([DEVIATION_PLAN_S_DATE])/DISTINCTCOUNT('FACT WORK ORDER'[Dim_Reporting_Date_ID])
Deviation Early Actual vs Required Finish Date HoursYNSUMNSUM([DEVIATION_REQ_END_DATE])/DISTINCTCOUNT('FACT WORK ORDER'[Dim_Reporting_Date_ID])
Deviation Early Actual vs Required Start Date HoursYNSUMNSUM([DEVIATION_REQ_START_DATE])/DISTINCTCOUNT('FACT WORK ORDER'[Dim_Reporting_Date_ID])
Deviation Late Actual vs Fixed Start Date HoursYNSUMNSUM([ELAPSED_FIXED_START_DATE])/DISTINCTCOUNT('FACT WORK ORDER'[Dim_Reporting_Date_ID])
Deviation Late Actual vs Late Start Date HoursYNSUMNSUM([ELAPSED_EARLIEST_START_DATE])/DISTINCTCOUNT('FACT WORK ORDER'[Dim_Reporting_Date_ID])
Deviation Late Actual vs Planned Finish Date HoursYNSUMNSUM([ELAPSED_PLAN_F_DATE])/DISTINCTCOUNT('FACT WORK ORDER'[Dim_Reporting_Date_ID])
Deviation Late Actual vs Planned Start Date HoursYNSUMNSUM([ELAPSED_PLAN_S_DATE])/DISTINCTCOUNT('FACT WORK ORDER'[Dim_Reporting_Date_ID])
Deviation Late Actual vs Required End Date HoursYNSUMNSUM([ELAPSED_REQ_END_DATE])/DISTINCTCOUNT('FACT WORK ORDER'[Dim_Reporting_Date_ID])
Deviation Late Actual vs Required Start Date HoursYNSUMNSUM([ELAPSED_REQ_START_DATE])/DISTINCTCOUNT('FACT WORK ORDER'[Dim_Reporting_Date_ID])
Early Actual vs Fixed Start CountNNSUMNSUM([EARLY_ACTUAL_VS_FIXED_START])
Early Actual vs Late Start CountNNSUMNSUM([EARLY_ACTUAL_VS_EARLIEST_START])
Early Actual vs Planned Finish CountNNSUMNSUM([EARLY_ACTUAL_VS_PLANNED_COMPL])
Early Actual vs Planned Start CountNNSUMNSUM([EARLY_ACTUAL_VS_PLANNED_START])
Early Actual vs Required Finish CountNNSUMNSUM([EARLY_ACTUAL_VS_REQ_COMPL])
Early Actual vs Required Start CountNNSUMNSUM([EARLY_ACTUAL_VS_REQ_START])
Elapsed Execution TimeYNSUMNSUM([ELAPSED_EXECUTION_TIME])/DISTINCTCOUNT('FACT WORK ORDER'[Dim_Reporting_Date_ID])
Elapsed Time to CompleteYNSUMNSUM([ELAPSED_TIME_TO_COMPLETE])/DISTINCTCOUNT('FACT WORK ORDER'[Dim_Reporting_Date_ID])
Elapsed Time to StartYNSUMNSUM([ELAPSED_TIME_TO_START])/DISTINCTCOUNT('FACT WORK ORDER'[Dim_Reporting_Date_ID])
Elapsed Waiting TimeYNSUMNSUM([ELAPSED_WAITING_TIME])/DISTINCTCOUNT('FACT WORK ORDER'[Dim_Reporting_Date_ID])
Fault Order CountNNSUMNSUM([ORIGINATED_FROM_FAULT])
Installation Order CountNNSUMNSUM([INSTALLATION_COUNT])
Job Plan CountNvar totPlannedJobs = [Corrective Order Count]+[PM Order Count] RETURN IF(ISBLANK(totPlannedJobs),0,totPlannedJobs)
Late Actual vs Late Start CountNNSUMNSUM([LATE_ACTUAL_VS_EARLIEST_START])
Late Actual vs Planned Finish CountNNSUMNSUM([LATE_ACTUAL_VS_PLANNED_COMPL])
Late Actual vs Planned Start CountNNSUMNSUM([LATE_ACTUAL_VS_PLANNED_START])
Late Actual vs Required Finish CountNNSUMNSUM([LATE_ACTUAL_VS_REQ_COMPL])
Late Actual vs Required Start CountNNSUMNSUM([LATE_ACTUAL_VS_REQ_START])
MTFF CountNNCOUNTNCOUNT('FACT WORK ORDER'[ELAPSED_TIME_TO_COMPLETE])
MTFF SumNNSUMNSUM([ELAPSED_TIME_TO_COMPLETE])
MTFS CountNNCOUNTNCOUNT('FACT WORK ORDER'[ELAPSED_TIME_TO_START])
MTFS SumNNSUMNSUM([ELAPSED_TIME_TO_START])
MTTR CountNNCOUNTNCOUNT('FACT WORK ORDER'[ELAPSED_EXECUTION_TIME])
MTTR SumNNSUMNSUM([ELAPSED_EXECUTION_TIME])
MWT CountNNCOUNTNCOUNT('FACT WORK ORDER'[ELAPSED_WAITING_TIME])
MWT SumNNSUMNSUM([ELAPSED_WAITING_TIME])
Mean Time For Finish Work DaysYNDIVIDENDIVIDE(([MTFF Sum]/8),[MTFF Count])
Mean Time For Finish Work HoursYNDIVIDENDIVIDE([MTFF Sum],[MTFF Count])
Mean Time For Finish Work MinutesYNDIVIDENDIVIDE(([MTFF Sum]*60),[MTFF Count])
Mean Time For Start Work DaysYNDIVIDENDIVIDE(([MTFS Sum]/8),[MTFS Count])
Mean Time For Start Work HoursYNDIVIDENDIVIDE([MTFS Sum],[MTFS Count])
Mean Time For Start Work MinutesYNDIVIDENDIVIDE(([MTFS Sum]*60),[MTFS Count])
Modification Order CountNNSUMNSUM([MODIFICATION_COUNT])
Other Order CountNNSUMNSUM([OTHER_COUNT])
PM & PdM Corrective Order CountNSUM([SRC_WO_HAS_PM_TASK])+SUM([SRC_WO_HAS_PM_STEP])
PM & PdM EffectivenessNDIVIDE ( CALCULATE ( [PM & PdM Corrective Order Count], FILTER ( 'WORK ORDER', 'WORK ORDER'[STATE_DB] IN { "FINISHED", "REPORTED", "WORKDONE" } ) ), [PM & PdM Corrective Order Count] )
PM & PdM WorkOrder Overdue (Days)NVAR overdue = DATEDIFF ( MAX ( 'FACT WORK ORDER'[DATE_REQUIRED_END] ), NOW (), DAY ) RETURN CALCULATE ( overdue, FILTER ( 'WORK ORDER', NOT ( 'WORK ORDER'[STATE_DB] IN { "FINISHED", "CANCELED" } ) ), FILTER ( 'FACT WORK ORDER', 'FACT WORK ORDER'[WO_HAS_PM_STEP] = 1 || 'FACT WORK ORDER'[WO_HAS_PM_TASK] = 1 ) )
PM & PdM/CBM ComplianceNDIVIDE ( CALCULATE ( DISTINCTCOUNT ( 'FACT WORK ORDER'[DIM_WORK_ORDER_ID] ), FILTER ( 'FACT WORK ORDER', 'FACT WORK ORDER'[DATE_REQUIRED_END] >= 'FACT WORK ORDER'[DATE_ACTUAL_COMPL] && ( 'FACT WORK ORDER'[WO_HAS_PM_TASK] = 1 || 'FACT WORK ORDER'[WO_HAS_PM_STEP] = 1 ) ), FILTER ( 'WORK ORDER', 'WORK ORDER'[STATE_DB] = "FINISHED" ) ), CALCULATE ( DISTINCTCOUNT ( 'FACT WORK ORDER'[DIM_WORK_ORDER_ID] ), FILTER ( 'FACT WORK ORDER', ( 'FACT WORK ORDER'[DATE_REQUIRED_END] <= NOW () && 'FACT WORK ORDER'[DATE_REQUIRED_END] <> BLANK () ) && ( 'FACT WORK ORDER'[WO_HAS_PM_TASK] = 1 || 'FACT WORK ORDER'[WO_HAS_PM_STEP] = 1 ) ) ) )
Planner Productivity (Job Plans) AnnuallyNAVERAGEX(VALUES('REPORTING DATE'[Reporting Year]),'FACT WORK ORDER'[Job Plan Count])
Planner Productivity (Job Plans) MonthlyNAVERAGEX(VALUES('REPORTING DATE'[Reporting Month]),'FACT WORK ORDER'[Job Plan Count])
Planner Productivity (Job Plans) QuarterlyNAVERAGEX(VALUES('REPORTING DATE'[Reporting Quarter]),'FACT WORK ORDER'[Job Plan Count])
Planning Variance IndexNDIVIDE ( CALCULATE ( DISTINCTCOUNT ( 'FACT WORK ORDER'[DIM_WORK_ORDER_ID] ), FILTER ( 'WORK ORDER', 'WORK ORDER'[STATE_DB] = "FINISHED" ), FILTER ( 'FACT WORK ORDER', 'FACT WORK ORDER'[ACTUAL_COST_TO_PLAN] >= 90 && 'FACT WORK ORDER'[ACTUAL_COST_TO_PLAN] <= 110 ) ), CALCULATE ( DISTINCTCOUNT ( 'FACT WORK ORDER'[DIM_WORK_ORDER_ID] ), FILTER ( 'WORK ORDER', 'WORK ORDER'[STATE_DB] = "FINISHED" ), FILTER ( 'FACT WORK ORDER', 'FACT WORK ORDER'[HAS_PLAN_LINE] = 1 ) ) )
Preventive Order CountNNSUMNSUM([PREVENTIVE_COUNT])
Project Order CountNYSUMNSUM([PROJECT_COUNT])
Project Rate %YNNIF([Work Order Count]>0,[Project Order Count]/[Work Order Count], BLANK())
Service Order CountNNSUMNSUM([SERVICE_COUNT])
Work Order Age (Days)NCALCULATE ( DATEDIFF ( MAX ( 'FACT WORK ORDER'[DATE_CREATED] ), NOW (), DAY ), FILTER ( 'WORK ORDER', 'WORK ORDER'[STATE_DB] IN { "WORKREQUEST", "FAULTREPORT", "UNDERPREPARATION", "PREPARED", "RELEASED", "WORKSTARTED" } ) )
Work Order CountNNCOUNTROWSNCOUNTROWS('FACT WORK ORDER')
Work Order Cycle TimeNCALCULATE ( SUM ( 'FACT WORK ORDER'[WO Cycle Time] ), FILTER ( 'WORK ORDER', 'WORK ORDER'[STATE_DB] = "FINISHED" ) )

Time Intelligence Measures

Time based measures are calculated in the cube with respect to other measures. The table below defines the meaning/definition of  the different time measures. These measures need to be used with a specific time dimension hierarchy [REPORTING_DATE].[RepDateMFHy].

Measure Meaning
YTD Aggregated value for current month in current  year. E.g. for period 202010 Ytd represents sum of periods 202000-202010.
R12 For a given period, the sum all months from one year back up to the previous month. E.g. Rolling 12 for 202010 is the sum of months 201910 - 202009
PY Previous Year
The value of the corresponding month one year back. E.g. for month 202010, the value of month 201910.
YTD PY Year to Date Previous Year
Aggregated value for corresponding month one year back. E.g. for month 202010 YTD Previous Year represents sum of months 201901-201910.
R12 PY Rolling 12 (completed) Months Previous Year
For a given month, first going one year back, then taking the sum of all months from one (more) year back up to the previous month. E.g. for month 202010 the sum of month 201810-201909
Avg XXX Ytd Sum XXX YTD/Count XXX YTD
Avg XXX R12 Sum XXX R12/Count XXX R12
XXX % YTD Count XXX YTD/Count YYY YTD
XXX % R12 Count XXX R12/Count XXX R12

USED BY MODEL(S)

Model Name Product Area
MaintenanceMaintenance

Data source Information

The data source for this object is defined using IFS Developer Tool. The data source contains a number of transformations where the model reads data from the last step, i.e. the Data source view name (DW Source View Name).

Additional information can be found in the online documentation of Information Sources.

Model Table DW Source view (SQL Server) BI Access View Referenced Information Source Recommended Access Type
FACT WORK ORDERFACT_WORK_ORDER_TMFACT_WORK_ORDER_BIFACT_WORK_ORDERData Mart

SPECIAL INFO

N/A